Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Query Linq conteggio Item
Forum - C# / VB.NET - [VB.NET] Query Linq conteggio Item

Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 15:14
Martedì, 27/09/2011
Questo topic è stato chiuso dal moderatore

Ciao a tutti. Piccolo problemino con Linq. Ho letto un po' la guida di Totem, ma.. non c'ho capito molto. Comunque, ho un dictionary di String e Boolean. Dopo aver caricato il mio dictionary con i vari item ho la necessità di sapere quanti Item hanno Value = true. La cosa si può fare facilmente con un bel for Each e un contattore, ma così ho la scusa per usare Linq.. (o almeno provarci).
In rete ho trovato questo codice, che ho un po riadattato a tentativi:
Codice sorgente - presumibilmente VB.NET

  1. Dim query = From MyDictionary In MyDictionary.Values
  2.             Group By c Into grouping = Group _
  3.             Order By c Select New With {.condizione = True, .Count = grouping.Count()}


Qualcuno mi può spiegare come funziona? Se poi volessi convertire il valore di query in byte, che tanto so che è un numero piccolo? Grazie8-|

PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 19:11
Martedì, 27/09/2011
secondo me ti stai complicando la vita, credo basti un

Codice sorgente - presumibilmente C# / VB.NET

  1. Dim count As Integer = MyDictionary.Count(Function(item) item.Value)


PM
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 20:21
Martedì, 27/09/2011
Ciao, grazie.. Avevo anche io l'impressione che quel pezzo di codice facesse qualcosa in più di una semplice verifica e conteggio.. Ma se ci mettevo le mani poi mi dava errore.. Comunque, per completare, metto il codice "corretto":
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim cont As Byte = CByte(MyDictiornary.LongCount(Function(item) item.Value = True))


Bisogna usare l'extention LongCount perchè il "count" normale dei dictionary non ha overloads.
Grazie ancora!:k:

PM